
"""
图片验证码

    1.我们通过capatcha 来生成图片和获取图片的内容 (例如:nxaz)
    2.把生成的图片内容保存起来(以方便在短信的地方进行验证 验证用户输入的是否和我们保存的一致)
        图片验证码有时效
        图片保存在redis中  如果保存在数据库中,则增加了数据库的操作

        key: value

        key 使用uuid
        value 是保存 生成的随机码


短信验证码
"""
from django import http
from django.views import View
from django_redis import get_redis_connection

from apps.verifications.constant import IMAGE_CODE_EXPIRE_TIME
from libs.captcha.captcha import captcha


class ImageCodeView(View):
    def get(self,request, uuid):
        # # 1. 获取图片和图片验证码的内容
        text,image=captcha.generate_captcha()

        # 2.将图片保存到redis中
        # get_redis_connection连接数据库
        redis_conn=get_redis_connection('code')

        # 设置过期时间
        # redis_conn.setex(key,seconds,value)
        # 习惯上给uuid加一个前缀
        redis_conn.setex('img_%s'%uuid,IMAGE_CODE_EXPIRE_TIME,text)
        # 3. 返回图片
        # content_type 所对应的是MIME类型
        # 语法形式: 大类/小类
        # image/jpeg image/png image/gif
        # text/html
        return http.HttpResponse(image,content_type='image/jpeg')
